using System;

namespace nHydrate.EFCore.DataAccess
{
	#region AuditTypeConstants Enumeration

	/// <summary>
	/// A set of values for the types of audits
	/// </summary>
	public enum AuditTypeConstants
	{
		/// <summary>
		/// Represents a row insert
		/// </summary>
		Insert = 1,
		/// <summary>
		/// Represents a row update
		/// </summary>
		Update = 2,
		/// <summary>
		/// Represents a row delete
		/// </summary>
		Delete = 3,
	}

	#endregion

	/// <summary>
	/// The base interface for all audit objects
	/// </summary>
	public interface IAudit
	{
		/// <summary>
		/// The type of audit
		/// </summary>
		AuditTypeConstants AuditType { get; }

		/// <summary>
		/// The date of the audit
		/// </summary>
		DateTime AuditDate { get; }

		/// <summary>
		/// The modifier value of the audit
		/// </summary>
		string ModifiedBy { get; }
	}

}
